package com.ynet.middleground.riskmanage.bean;

import javax.validation.constraints.NotEmpty;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @ClassName StaticPledgeOrReliefPledgeReq
 * @Description 冷链及大港-质押监管与解除质押监管（静态）请求类
 * @Author zhangyongbin
 * @Date 2020/8/17 17:38
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "质押监管与解除质押监管（静态）请求类", description = "质押监管与解除质押监管（静态）请求类")
public class StaticPledgeOrReliefPledgeReq extends BaseReqObj {
    private static final long serialVersionUID = 893337734121667538L;

    @ApiModelProperty(value = "系统标志 0：冷链、1：大港", notes = "系统标志 0：冷链、1：大港", required = true)
    @NotEmpty(message = "系统标志不能为空")
    private String chanType;

    @ApiModelProperty(value = "在库明细ID，若系统标志上送0，此项必填", notes = "在库明细ID，若系统标志上送0，此项必填")
    private String taskId;

    @ApiModelProperty(value = "船号", notes = "船号")
    private String shipNo;

    @ApiModelProperty(value = "货号，若系统标志上送1，此项必填", notes = "货号，若系统标志上送1，此项必填")
    private String sellNo;

    @ApiModelProperty(
        value = "监管数量\n(若系统标志上送0: 在进行部分质押/解除质押业务时，要保证监管重量、监管数量的比例=单毛重,单毛重在“在库信息查询”服务有返回;"
            + "\n若系统标志上送1:在进行部分质押/解除质押业务时,数量与重量之间没有校验关系,只要保证上送的数量、重量不超过港存数量、重量即可;)\n质押时为:质押监管数量。解除时为:解除后仍质押监管数量,单位为件;",
        notes = "监管数量\n(若系统标志上送0: 在进行部分质押/解除质押业务时，要保证监管重量、监管数量的比例=单毛重,单毛重在“在库信息查询”服务有返回;"
            + "\n若系统标志上送1:在进行部分质押/解除质押业务时,数量与重量之间没有校验关系,只要保证上送的数量、重量不超过港存数量、重量即可;)\n质押时为:质押监管数量。解除时为:解除后仍质押监管数量,单位为件;",
        required = true)
    @NotEmpty(message = "监管数量不能为空")
    private String watchAmount;

    @ApiModelProperty(
        value = "监管重量\n(若系统标志上送0: 在进行部分质押/解除质押业务时，要保证监管重量、监管数量的比例=单毛重,单毛重在“在库信息查询”服务有返回;"
            + "\n若系统标志上送1:在进行部分质押/解除质押业务时,数量与重量之间没有校验关系,只要保证上送的数量、重量不超过港存数量、重量即可;)\n质押时为:质押监管重量。解除时为:解除后仍质押监管重量,冷链单位为千克，大港单位为吨;",
        notes = "监管重量\n(若系统标志上送0: 在进行部分质押/解除质押业务时，要保证监管重量、监管数量的比例=单毛重,单毛重在“在库信息查询”服务有返回;"
            + "\n若系统标志上送1:在进行部分质押/解除质押业务时,数量与重量之间没有校验关系,只要保证上送的数量、重量不超过港存数量、重量即可;)\n质押时为:质押监管重量。解除时为:解除后仍质押监管重量,冷链单位为千克，大港单位为吨;",
        required = true)
    @NotEmpty(message = "监管重量不能为空")
    private String watchWeight;

    @ApiModelProperty(value = "指令，JCZYJG：解除质押监管；ZYJG：质押监管", notes = "指令，JCZYJG：解除质押监管；ZYJG：质押监管", required = true)
    @NotEmpty(message = "指令不能为空")
    private String order;

    @ApiModelProperty(value = "是否部分解除(对接大港专用);", notes = "是否部分解除(对接大港专用);")
    private Boolean isPartialRelease;

    @ApiModelProperty(value = "解除时，对应的原数据在中台的唯一标志;解除时必填，用于解除时和之前原质押的数据关联",
        notes = "解除时，对应的原数据在中台的唯一标志;解除时必填，用于解除时和之前原质押的数据关联")
    private Integer trendId;
}
